1. Field of the Invention
The present invention relates generally to building and testing software applications, and more specifically relates to an automated system and method for building and testing program code across multiple operating systems and architectures.
2. Related Art
Given the many different types and versions of computer systems, software development environments often require that their software applications work on different operating systems and architectures (i.e., platforms). For instance, a given application may be required to be run on WINDOWS™, OS400™, AIX™, LINUX™, etc. In order to achieve this, software code is typically written in a high level machine independent programming language, e.g., C, C++, etc. Once written, an executable program can then built (e.g., compiled) from the code on each of the target platforms. Once built, the software can be executed and tested on each of the target platforms. Given the complexity of many software applications, the application, or portions thereof, may need to be rebuilt and retested over and over again as source code changes are made.
Unfortunately, these types of development environments are faced with a number of challenges. One problem is that individual developers must have a certain amount of expertise for all of the given platforms in order to properly build and test the application, or portions thereof, on each platform. Because many developers do not have such expertise, they often only build and test the code on only a single platform. When this approach is taken, build or runtime errors on other platforms may not be discovered until a later time when source code changes are merged with source code changes from other developers. Determining the source of the errors at a later time may be a more difficult and costly process, given the fact that there may be no way of knowing which source code change or developer was responsible for introducing the error.
Another challenge is the fact that manually building and testing the application for ongoing source code changes across multiple platforms is both a time and resource intensive process. Moreover, such manual operations are error prone and/or may lack a consistent approach. Accordingly, a need exists for an automated environment that can build and test software applications across multiple platforms without significant involvement from the code developers.